<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>一些数学函数在 GeoGebra 中的实际应用 | Jonny's Blog</title><meta name="keywords" content="数学,GeoGebra,函数,方程式"><meta name="author" content="Jonny"><meta name="copyright" content="Jonny"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="这里有一些函数，通过它们而不是代码来进行某些计算，比如：判断奇偶数。">
<meta property="og:type" content="article">
<meta property="og:title" content="一些数学函数在 GeoGebra 中的实际应用">
<meta property="og:url" content="https://jonny-jong.gitee.io/0011/index.html">
<meta property="og:site_name" content="Jonny&#39;s Blog">
<meta property="og:description" content="这里有一些函数，通过它们而不是代码来进行某些计算，比如：判断奇偶数。">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://jonny-jong.gitee.io/bloglibpost/0011/cover.jpg">
<meta property="article:published_time" content="2021-06-27T08:12:19.000Z">
<meta property="article:modified_time" content="2021-09-13T15:40:35.126Z">
<meta property="article:author" content="Jonny">
<meta property="article:tag" content="数学">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://jonny-jong.gitee.io/bloglibpost/0011/cover.jpg"><link rel="shortcut icon" href="/favicon.png"><link rel="canonical" href="https://jonny-jong.gitee.io/0011/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//www.google-analytics.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><meta/><meta/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><script async="async" src="https://www.googletagmanager.com/gtag/js?id=G-NC6273DV13"></script><script>window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-NC6273DV13');
</script><link rel="stylesheet" href="http://cdn.repository.webfont.com/webfonts/nomal/144929/48194/60b361fdf629d8bc04caa92d.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"search.xml","languages":{"hits_empty":"找不到您查询的内容：${query}"}},
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: '复制成功',
    error: '复制错误',
    noSupport: '浏览器不支持'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '天',
  date_suffix: {
    just: '刚刚',
    min: '分钟前',
    hour: '小时前',
    day: '天前',
    month: '个月前'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#009688","bgDark":"#009688","position":"bottom-left"},
  source: {
    jQuery: 'https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js',
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css'
    },
    fancybox: {
      js: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js',
      css: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css'
    }
  },
  isPhotoFigcaption: true,
  islazyload: true,
  isanchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '一些数学函数在 GeoGebra 中的实际应用',
  isPost: true,
  isHome: false,
  isHighlightShrink: false,
  isToc: true,
  postUpdate: '2021-09-13 23:40:35'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const fontSizeVal = saveToLocal.get('global-font-size')
    if (fontSizeVal !== undefined) {
      document.documentElement.style.setProperty('--global-font-size', fontSizeVal + 'px')
    }
    })(window)</script><meta name="baidu-site-verification" content="code-XKEwTkds1F" /><meta name="msvalidate.01" content="ADE97C498734E5EB1C53E8CAA685B7E0" /><link rel="stylesheet" href="https://at.alicdn.com/t/font_1996916_06eb7s45b9l.css"><style type="text/css">.card-announcement .content-button{margin: .6rem 0 0 0; text-align: center;}.card-announcement .content-button a{display: block; margin: 0.2rem 0;background-color: var(--btn-bg); color: var(--btn-color); line-height: 1.6rem; transition: all .3s; position: relative; z-index: 1;}</style><meta name="generator" content="Hexo 5.4.0"><link rel="alternate" href="/atom.xml" title="Jonny's Blog" type="application/atom+xml">
</head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="author-avatar"><img class="avatar-img" src= "" data-lazy-src="/img/avatar.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">文章</div><div class="length-num">16</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">标签</div><div class="length-num">19</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">分类</div><div class="length-num">16</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fa fa-graduation-cap"></i><span> 文章</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-folder-open"></i><span> 归档</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-archive"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fa-fw fa fa-heartbeat"></i><span> 媒体</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/photo/"><i class="fa-fw fas fa-images"></i><span> 图片</span></a></li><li><a class="site-page child" href="/design/"><i class="fa-fw fa fa-flag"></i><span> 设计</span></a></li><li><a class="site-page child" href="/recommend/"><i class="fa-fw fa fa-thumbs-up"></i><span> 推荐</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('https://jonny-jong.gitee.io/bloglibpost/0011/cover.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">Jonny's Blog</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fa fa-graduation-cap"></i><span> 文章</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-folder-open"></i><span> 归档</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-archive"></i><span> 分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fa-fw fa fa-heartbeat"></i><span> 媒体</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> 音乐</span></a></li><li><a class="site-page child" href="/photo/"><i class="fa-fw fas fa-images"></i><span> 图片</span></a></li><li><a class="site-page child" href="/design/"><i class="fa-fw fa fa-flag"></i><span> 设计</span></a></li><li><a class="site-page child" href="/recommend/"><i class="fa-fw fa fa-thumbs-up"></i><span> 推荐</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">一些数学函数在 GeoGebra 中的实际应用</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2021-06-27T08:12:19.000Z" title="发表于 2021-06-27 16:12:19">2021-06-27</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2021-09-13T15:40:35.126Z" title="更新于 2021-09-13 23:40:35">2021-09-13</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/%E6%95%B0%E5%AD%A6/">数学</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-wordcount"><i class="far fa-file-word fa-fw post-meta-icon"></i><span class="post-meta-label">字数总计:</span><span class="word-count">2.7k</span><span class="post-meta-separator">|</span><i class="far fa-clock fa-fw post-meta-icon"></i><span class="post-meta-label">阅读时长:</span><span>8分钟</span></span><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="一些数学函数在 GeoGebra 中的实际应用"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><div class="note red info flat"><b>
<p>现已启用新域名：<a target="_blank" rel="noopener" href="https://jonnys.top">jonnys.top</a><br>
原 <a href="http://jonny-jong.gitee.io">jonny-jong.gitee.io</a> 现已停止更新。</p>
<p>欲获取此文章最新内容请前往 <a target="_blank" rel="noopener" href="https://jonnys.top/0011">jonnys.top/0011</a>。</p>
<p>感谢支持！</p>
</b>
</div>
<div class="note info flat"><p>这里的函数有些可能不是最简的，但它反映了思考的过程。对于函数的简化，如果有，则会出现在这里。</p>
</div>
<h1>前言</h1>
<p>曾经我遇到这样一个问题：有一个网站，每天去签到，第一天得 1 分、第二天得 2 分、第三天得 3 分，如此积累到 666 分需要多少天。<br>
当时我想出来一条函数，实际上并不是一条，而是几条函数结合在一起的，算出来的结果大概是一个月，具体的天数我记不清了。<br>
后来，更新了 GeoGebra 导致保存在 GeoGebra 里的函数丢失了，甚至我也想不起来当初的函数是怎么写的，只记得一部分，所以我打算将这些函数记录到这里。我记不住，但互联网有记忆。</p>
<h1>函数</h1>
<div class="note info flat"><p>函数的绘制软件我只推荐 GeoGebra。当然，这个软件还是有槽点的，比如计算的结果通常是小数而不是分数和带根号的数，这样一来有些计算变得麻烦了，不过现在没有更好的软件，有的话请告诉我。<br>
<a class="btn-beautify button--animated blue outline line left larger" target="_blank" rel="noopener" href="https://www.geogebra.org/?lang=zh-CN" 
  title="前往 GeoGebra 官网"><i class="iconfont icon-Geogebra"></i><span>前往 GeoGebra 官网</span></a></p>
</div>
<div class="note warning flat"><p>阅读体验欠佳！<br>
该文章中有一维图像和二维图像导致性能下降。<br>
调整函数后刷新或离开此网页会弹出提示框“可能未保存所做的更改。”，请直接点击“刷新”或“离开”。<br>
手机端如需查看函数图像，请点击全屏按钮。<img class="inline-img" src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0011/user.fullscreen.jpg" style="height:40px"/></p>
</div>
<h2 id="奇偶判断">奇偶判断</h2>
<p>实际上方法有不少，这里我使用 sin。</p>
<iframe src="https://www.geogebra.org/classic/yvqnsb9f?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<p>这个函数会根据输入的 x 的奇偶，当 x 为奇数时输出 1，偶数时为 0，一般来讲就是用来乘的。如果需要偶数输出 1 ，奇数输出 0，那么就想 g(x) 一样，把整个函数向左平移 (π)/(2) 个单位就好了。<br>
其实这个函数还需要限制 x 为正整数的，不过这里就不写了，主要是方便后面使用。</p>
<h2 id="正整数相加">正整数相加</h2>
<p>这便是我在前言中所说的问题，想了好久想不出来，当初我是用了奇偶判断加其他好几条函数做出来的，那时出来的函数很长，看着图像我猜测是一元二次函数，结果呢…真就是啊。<br>
我已经忘记以前是怎么解的了，那时闲麻烦不想求一元二次方程，虽然现在直接去求一元二次方程了，但心有不甘，还是很想还原出当时写出的式子的。</p>
<iframe src="https://www.geogebra.org/classic/hpjzbab2?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<p>这里的 f(x) 是直接带入三个点(0,0)、(1,1)、(3,6)解出来的，后面还带入了其他的点，最终确认了是这个函数。<br>
不过 f(x) 只能判断大于 0 的部分，后面的 -1-2-3… 只需要把这个函数的正半轴复制并旋转 180° 就行了，也就是 g(x)。<br>
最后将两者合并得到 q(x)，这里的 h 和 p 这样写是因为有 bug。</p>
<p>至此，这个函数看似已经足够使用了。但是，还有一个问题有待解决，如果我是指定一个范围内的整数相加呢？<br>
其实并不困难，首先定义两个变量，一个是起始，一个是结束，分别为 a 和 b。此时，a 必须小于或等于 b，且 a 和 b 都为整数。<br>
分五种情况来看：<br>
一、当 a 为 0<br>
此时就按照原始的函数去计算就行了。<br>
二、当 a 大于 0<br>
这种情况下，无非是 a-b，所以也不复杂。<br>
三、当 a 小于 0，b 等于 0<br>
这种情况也不复杂，直接将 a 带入到原始公式里就好了<br>
四、当 a 小于 0，b 小于 0<br>
那么就是 a-b。抽象一些，直接将 a 和 b 带入方程，得到两个长度不同的 A 和 B，B 整一段都是不需要的，而 A 包含 B，所以把 A 里的 B 去掉就行。<br>
五、当 a 小于 0，b 大于 0<br>
这时就比较复杂了，根据我们上一种情况的抽象思维来看，A 和 B 都需要，所以就是 b-a</p>
<p>此时不应该直接“综上所述”得到一个多项式，我们再来观察一下。<br>
根据上面的抽象方法，发现了说明没？<br>
那就是当 a 在正半轴时，a 的部分是全都不需要的，只有在负半轴时是需要的。而 b 正好相反过来。<br>
而当 a 在正半轴时，a 是正数，负半轴时是负数，负数时是需要的，正数是不需要的，所以我们得到下面的函数 c。</p>
<iframe src="https://www.geogebra.org/classic/fqp6jpss?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<p>这里由于没有 x 出现，GeoGebra 就没有把它当作一条函数来看待。<br>
不过，GeoGebra 不仅可以渲染平面的图像，还可以渲染立体的图像，让我们来看看。其中 a(x,y) 是我们要的函数。我还尝试过添加限制 x≤y，不过嘛，效果不怎么样，各位可以把 a(x,y) 给隐藏了，把 b(x,y) 显示出来。点击函数左侧的圆就可以隐藏或显示。（疯狂掉帧ing…）</p>
<iframe src="https://www.geogebra.org/classic/q7arapmh?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<h2 id="抽取种类数">抽取种类数</h2>
<p>懒惰促使我努力去寻找偷懒的方法。</p>
<p>在 m 个东西里抽取 n 个东西，不重复抽取，不考虑顺序，求有几种情况。<br>
这个挺麻烦的，一上来就是一条立体函数。不过，我已经有思路了，我们先不要想象什么立体图形，就先想想其中一个平面。<br>
我们假定 m 是 5，n 作为自变量，然后看看分别会有几种情况。<br>
当 n=1 时，有 5 种；n=2，10；n=3，10；n=4，5；n=5，1。<br>
发现没有，它是对称的，那么又来到求一元二次方程的时候了。<br>
最终的结果是：f(x)=-((5)/(2)) x^(2)+(25)/(2) x-5<br>
由于我们要求的是立体函数，光这一条函数可不够用，还需要多几条来观察。<br>
所以我们假定 m=3，所以 g(x)=-2 x^(2)+8 x-2<br>
再假定 m=4，所以 h(x)=-x^(2)+3 x+1</p>
<iframe src="https://www.geogebra.org/classic/ngau3wwu?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<p>观察图像，乍一看没什么规律，又好像有点规律，<del>那就是规律了但没完全规律</del>。那就让我来讲讲到底规律了哪里。<br>
首先，我们一直写得都是 ax^2+bx+c，这样写是为了计算起来方便，但我们还是需要把它们都变成 a(x-h)^2+k 这种顶点式。<br>
好，现在来转换一下，得到下面的式子。</p>
<p>p(x)=-((5)/(2)) (x-((5)/(2)))^(2)+(85)/(8)<br>
q(x)=-2 (x-2)^(2)+6<br>
r(x)=-(x-((3)/(2)))^(2)+(13)/(4)</p>
<p>然而还是没有什么用。可能是 3 这个数太小了，所以我要尝试一下 6。<br>
神奇的事情出现了，到了 6 就出现了不管怎么算都对不上的情况，带入不同的点出现不同的式子…<br>
（思索片刻）<br>
这代表什么？这代表我们一开始的想法就是错的！它根本不是一元二次方程，只是因为前面的数刚好对上罢了。<br>
将所有的点放到 GeoGebra 当中。（看上面的）</p>
<p>再次好好观察…<br>
会发现它的图像更接近于这种。<br>
<img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0011/001.jpg" alt="用板子画的，很难看，见谅"><br>
看到的第一眼我想到了正态分布。嗯…虽然现在课本上还没讲过正态分布（不知道高二有没有），但我还是可以试一试的。<br>
在百科上看到正态分布的定义后，已经感受到压力了，出现了我从没学过的 exp()，看来还要先会 exp()。<br>
然后我又想偷懒了，不过还好 GeoGebra 里有“概率模式”，所以我打算尝试一下。</p>
<p>上来就是当头一棒，不仅有正态分布，还有其他的好多种分布，所以我打算利用其中的“二项分布”，看看能不能试出我要的（虽然我也不清楚我到底要什么）。</p>
<iframe src="https://www.geogebra.org/classic/q3qxfzut?embed" width=100% height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>
<p>……<br>
似乎我踏入了不应该踏入的领域。但既然来了，肯定要拿什么回去才行。</p>
<blockquote>
<p>2021.09.12 更新</p>
</blockquote>
<p>硬来不行，决定换一种方法。<br>
那么，首先我们有两个必要的数，总数（total）和抽取量（extract），这两个是我在此处定义的。<br>
总数和抽取量必须为非负整数，且抽取量不得大于总数。</p>
<p>定好限制之后，接下来开始计算有几种可能。<br>
想起在平时我们怎么计算几种的，感觉有点类似冒泡算法，不过这里不需要排序，只需要每个都冒一遍就行了，整个冒的过程还可以简略。</p>
<p>在这里我们再引入一个“指”（point）的概念，即被“指”的需要被计数，粗略做了一个动画便于理解。<br>
<img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0011/whatISPoint.gif" alt="WhatIsPoint"><br>
在实际操作中，“指”只会指向最后的几个“目标”（target）上，而它将会指向几个，我们可以通过总数减去倒数第二个“指”的未知来得到。<br>
另外，我们还要检查当前“指”的数量，如果只有一个，则“目标”的数量直接统计起来。如果不止一个，我们需要让“指”进入下一层，直到剩余一个“指”才能统计数量。</p>
<p>可能有点过于抽象了，来举个例子。<br>
现在总数定为 4。<br>
当抽取量为 1 时，此时抽取量为 1，剩余目标为 4，计算总数为 4。<br>
当抽取量为 2 时，此时抽取量不为 1，进入下一层，总数和抽取量各减去（抽取量 - 1），此时抽取量为 1，总数为 3，即第一个总数为 3；回到上一层，此时最后一个指已经到最后一个目标了，因此倒数第二个（即第一个）指向后移动一次，同时最后一个指移动到倒数第二个指的后面一个目标上，此时总数为 3，抽取量为 2，老规矩，总数和抽取量各减去（抽取量 - 1），然后就来到下一层，此时总数为 2，抽取量为 1，即计入总数 2，回到上一层，倒数第二个指向后移动，此时最后一个指无法移动，即倒数第二个指的计算已经结束。<br>
剩下的如此类推……</p>
<p>将上面的用数字表示，0 是未被指向的目标，1 是被指向的目标，即：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">4 &gt; 1</span><br><span class="line">1000</span><br><span class="line">0100</span><br><span class="line">0010</span><br><span class="line">0001</span><br><span class="line"></span><br><span class="line">4 &gt; 2</span><br><span class="line">1100</span><br><span class="line">1010</span><br><span class="line">1001</span><br><span class="line">0110</span><br><span class="line">0101</span><br><span class="line">0011</span><br><span class="line"></span><br><span class="line">4 &gt; 3</span><br><span class="line">1110</span><br><span class="line">1101</span><br><span class="line">1011</span><br><span class="line">0111</span><br><span class="line"></span><br><span class="line">4 &gt; 4</span><br><span class="line">1111</span><br></pre></td></tr></table></figure>
<p>目前的思路到了这了，还在想怎么写成函数。</p>
<div class="note default flat"><p>未完待续……</p>
</div><link rel="stylesheet" href="/css/markmap.css" type="text/css"></article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta">文章作者: </span><span class="post-copyright-info"><a href="mailto:undefined">Jonny</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta">文章链接: </span><span class="post-copyright-info"><a href="https://jonny-jong.gitee.io/0011/">https://jonny-jong.gitee.io/0011/</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta">版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外，均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://jonny-jong.gitee.io" target="_blank">Jonny's Blog</a>！</span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/%E6%95%B0%E5%AD%A6/">数学</a></div><div class="post_share"><div class="social-share" data-image="https://jonny-jong.gitee.io/bloglibpost/0011/cover.jpg" data-sites="qzone,qq,twitter,wechat,weibo,facebook"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/social-share.js/dist/css/share.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/social-share.js/dist/js/social-share.min.js" defer></script></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/0012/"><img class="prev-cover" src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibbasic/cover/034.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of previous post"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">Atsius World</div></div></a></div><div class="next-post pull-right"><a href="/0010/"><img class="next-cover" src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0010/cover.jpg" onerror="onerror=null;src='/img/404.jpg'" alt="cover of next post"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">超短篇恐怖小说：File 01 [ÚöÖÞ»»]</div></div></a></div></nav><div class="relatedPosts"><div class="headline"><i class="fas fa-thumbs-up fa-fw"></i><span> 相关推荐</span></div><div class="relatedPosts-list"><div><a href="/0000/" title="用java写一个简单的质数生成器"><img class="cover" src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0000/cover.png" alt="cover"><div class="content is-center"><div class="date"><i class="fas fa-history fa-fw"></i> 2020-08-11</div><div class="title">用java写一个简单的质数生成器</div></div></a></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="card-info-avatar is-center"><img class="avatar-img" src= "" data-lazy-src="/img/avatar.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/><div class="author-info__name">Jonny</div><div class="author-info__description">这里是 Jonny 的博客</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">16</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">标签</div><div class="length-num">19</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">分类</div><div class="length-num">16</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener" href="https://space.bilibili.com/249460762"><i class="iconfont icon-bilibili-fill"></i><span>关注我</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/JonnyJong" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="https://space.bilibili.com/249460762" target="_blank" title="哔哩哔哩"><i class="iconfont icon-bilibili-fill"></i></a><a class="social-icon" href="https://gitee.com/jonny-jong" target="_blank" title="Gitee"><i class="iconfont icon-gitee-fill-round"></i></a><a class="social-icon" href="https://music.163.com/#/user/home?id=511452046" target="_blank" title="网易云音乐"><i class="iconfont icon-netease-cloud-music-fill"></i></a><a class="social-icon" href="mailto:jonnyjong@outlook.com" target="_blank" title="Outlook"><i class="iconfont icon-microsoftoutlook"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>公告</span></div><div class="announcement_content">此博客网站域名已更新为“jonnys.top”，此域名将不再更新，点击下方按钮前往新域名。 <div class="content-button"> <a class="button--animated" href="jonnys.top" target="_self">jonnys.top</a> </div></div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-number">1.</span> <span class="toc-text">前言</span></a></li><li class="toc-item toc-level-1"><a class="toc-link"><span class="toc-number">2.</span> <span class="toc-text">函数</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%A5%87%E5%81%B6%E5%88%A4%E6%96%AD"><span class="toc-number">2.1.</span> <span class="toc-text">奇偶判断</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%AD%A3%E6%95%B4%E6%95%B0%E7%9B%B8%E5%8A%A0"><span class="toc-number">2.2.</span> <span class="toc-text">正整数相加</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%8A%BD%E5%8F%96%E7%A7%8D%E7%B1%BB%E6%95%B0"><span class="toc-number">2.3.</span> <span class="toc-text">抽取种类数</span></a></li></ol></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/0001/" title="20.09.01日记"><img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0001/打了马防止被直接知道地址，当然防不住某些专门的.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="20.09.01日记"/></a><div class="content"><a class="title" href="/0001/" title="20.09.01日记">20.09.01日记</a><time datetime="2021-09-13T15:42:32.454Z" title="更新于 2021-09-13 23:42:32">2021-09-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/0002/" title="汕头市第二中学高一十三班和十四班联谊剪辑"><img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0002/0100.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="汕头市第二中学高一十三班和十四班联谊剪辑"/></a><div class="content"><a class="title" href="/0002/" title="汕头市第二中学高一十三班和十四班联谊剪辑">汕头市第二中学高一十三班和十四班联谊剪辑</a><time datetime="2021-09-13T15:42:23.990Z" title="更新于 2021-09-13 23:42:23">2021-09-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/0003/" title="适用于新手的 Manjaro 和 Windows 双系统安装教程（根据网络上的许多教程以及个人实际经验踩坑整合而成）"><img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0003/0003.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="适用于新手的 Manjaro 和 Windows 双系统安装教程（根据网络上的许多教程以及个人实际经验踩坑整合而成）"/></a><div class="content"><a class="title" href="/0003/" title="适用于新手的 Manjaro 和 Windows 双系统安装教程（根据网络上的许多教程以及个人实际经验踩坑整合而成）">适用于新手的 Manjaro 和 Windows 双系统安装教程（根据网络上的许多教程以及个人实际经验踩坑整合而成）</a><time datetime="2021-09-13T15:42:13.762Z" title="更新于 2021-09-13 23:42:13">2021-09-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/0004/" title="21.03.08日记"><img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0004/cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="21.03.08日记"/></a><div class="content"><a class="title" href="/0004/" title="21.03.08日记">21.03.08日记</a><time datetime="2021-09-13T15:42:09.441Z" title="更新于 2021-09-13 23:42:09">2021-09-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/0005/" title="关于 ColorOS 11.1 公测版的个人体验评测报告"><img src= "" data-lazy-src="https://jonny-jong.gitee.io/bloglibpost/0005/post.005.cover.sample.大光圈.从下往上.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="关于 ColorOS 11.1 公测版的个人体验评测报告"/></a><div class="content"><a class="title" href="/0005/" title="关于 ColorOS 11.1 公测版的个人体验评测报告">关于 ColorOS 11.1 公测版的个人体验评测报告</a><time datetime="2021-09-13T15:41:44.198Z" title="更新于 2021-09-13 23:41:44">2021-09-13</time></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('https://haoduck.com/demo/bing/index.php')"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2021 By Jonny</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="font-plus" type="button" title="放大字体"><i class="fas fa-plus"></i></button><button id="font-minus" type="button" title="缩小字体"><i class="fas fa-minus"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><div class="search-dialog__title" id="local-search-title">本地搜索</div><div id="local-input-panel"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div></div><hr/><div id="local-search-results"></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script src="/js/search/local-search.js"></script><div class="js-pjax"></div><script defer="defer" id="fluttering_ribbon" mobile="true" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><!-- hexo injector body_end start --><script src="https://cdn.jsdelivr.net/npm/d3@5"></script>
  <script src="https://cdn.jsdelivr.net/npm/markmap-lib@0.7.4/dist/browser/view.min.js"></script>
  <script>
      const mindmaps = document.querySelectorAll('.markmap-svg');
   
      for(const mindmap of mindmaps) {
          markmap.markmap(mindmap, JSON.parse(mindmap.innerHTML));
      }
  </script> <!-- hexo injector body_end end --></body></html>